Systems management typically includes a range of operations required to maintain system resources through their lifecycle phases, such as bring up phases, operation, failures/changes, and retire/shutdown phases. Tasks performed at each of these lifecycle phases include provisioning and installation of servers; monitoring performance and health of systems; security protection against viruses and spyware; runtime performance and resource management; backup protection against disasters; disk maintenance to improve performance; fault diagnostics and recovery; and asset management to track resources. With rising complexity and scale in today's enterprise systems, several of these management tasks have become non-trivial in computation, design, and in the number of execution steps performed. Further, although virtualization technology helps in managing data centers by providing isolation, consolidation, virtual machine (VM) mobility, and VM appliances, it however, also creates a new set of challenges to manageability as well.
As a result, there is a substantial growth in the development of manageability applications, and an adoption of automation software that reduces overall maintenance costs. Contemporary manageability solutions can be classified as hardware-based and software-based solutions. Examples of hardware-based solutions are those related to hardware monitoring, power management, thermal management, and diagnostics. These solutions are deployed in firmware either at the management processor or other hardware peripherals such as BIOS, smart disks, or sensors. Examples of software-based solutions are those related to provisioning, service level agreement (SLA) management, and file-based backup. These solutions are deployed at the host system, typically as user space programs.
While individual hardware and software-based management solutions have proved useful, their use in virtualized environments provides new challenges for three main reasons. First, since virtual machines are not the privileged entities running on a hardware platform, they typically lack the ability to access management hardware, since that requires certain privileges. This prevents them from carrying out virtual machine or application-specific management actions. Second, even with privileged access, since virtual machines are highly autonomous and usually run their own management policies, a coordination problem arises among multiple virtual machines because they may try to manage the underlying hardware platform with potentially different policies. Third, virtualization creates virtual resources, preventing virtual-machine-level management from taking care of tasks like inventory management, thereby further worsening the problem of hardware-software coordination.